package site.weiyikai.eventdriven.core;

import java.util.function.Predicate;


/**
 * 事件订阅服务
 * 提供事件订阅的方法
 *
 * @author 程序员小魏
 * 创建时间: 2023/11/03
 */
public interface SubscribeService {

    void subscribe(Predicate<?> eventFilter, EventSubscriber<?> eventSubscriber);

    void subscribe(String channel, Predicate<?> eventFilter, EventSubscriber<?> subscriber);

    void unsubscribe(EventSubscriber<?> eventSubscriber);

    void unsubscribe(String channel, Predicate<?> eventFilter, EventSubscriber<?> subscriber);
}
